/*
 Copyright (C) 2007 - Michael Opitz
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/
#ifndef GMAIL_UI_H
#define GMAIL_UI_H

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>

G_BEGIN_DECLS 

#define GMAIL_UI_TYPE			( gmail_ui_get_type ())
#define GMAIL_UI(obj)			( G_TYPE_CHECK_INSTANCE_CAST ((obj), \
					  GMAIL_UI_TYPE, GmailUI))
#define GMAIL_UI_CLASS(klass)		( G_TYPE_CHECK_CLASS_CAST ((klass), \
					  GMAIL_UI_TYPE, GmailUIClass))
#define GMAIL_IS_UI(obj)		( G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
					  GMAIL_UI_TYPE))
#define GMAIL_IS_UI_CLASS(klass)	( G_TYPE_CHECK_CLASS_TYPE ((klass), \
					  GMAIL_UI_TYPE))
#define GMAIL_UI_GET_CLASS(obj)		( G_TYPE_INSTANCE_GET_CLASS ((obj), \
					  GMAIL_UI_TYPE, GmailUIClass))

typedef struct _GmailUIClass 		GmailUIClass;
typedef struct _GmailUI			GmailUI;
typedef struct _GmailUIPriv		GmailUIPriv;

/** 
 * This structure contains all attributes for the GmailUI class. The GmailUI
 * class represents a dialog for editing/creating/deleting gmail accounts.
 */
struct _GmailUI 
{
	/** 
	 * This pointer points to the parent GObject class.
	 */
	GObject parent;

	/** 
	 * This attribute indicates whether the UI-class is disposed or not.
	int is_disposed;
	 */
	/** 
	 * This attribute stores all private information.
	 */
	GmailUIPriv *priv;
};

/** 
 * This structure contains all GmailUI-methods.
 */
struct _GmailUIClass 
{
	/** 
	 * This is the parent GObjectClass
	 */
	GObjectClass parent_class;

	/** 
	 * show_dialog:
	 * 
	 * @self: is a GmailUI object
	 * 
	 * This method shows the gmail-ui dialog.
	 *
	 */
	void (*show_dialog) (GmailUI *self);
};

GType 
gmail_ui_get_type ();
/** 
 * gmail_ui_register_type:
 * 
 * @module: is an object of the GTypeModule.
 * 
 * This function must be called in order to register the gmail-ui class.
 * 
 * Returns: a registered GType.
 */
GType
gmail_ui_register_type (GTypeModule *module);

G_END_DECLS

#endif

